package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

/*
    库管类
    1.核心职责是管理我们的数据仓库--数组:增删改查
    2.这里的所有方法都是给业务员用
 */
public class StudentDao {
    //创建一个学生对象的数组
    private Student[] student = new Student[5];

    //添加学生
    public boolean addStudent(Student stu) {

        //定义一个标记index =-1,表示数组对象满了
        int index = -1;
        for (int i = 0; i < student.length; i++) {
            //循环获取每个索引的值,如果等于空表示可以添加,索引记录到标记位
            if (student[i] == null) {
                index = i;
                //结束循环,避免占用后面的位置,不跳出就只能写到最后一个
                break;
            }
        }
        //最后判断标记如果还是为-1就表示数组没有位置记录,返回false
        if (index == -1) {
            return false;
        } else {
            //将要添加的学生对象赋值到index对应的位置
            student[index] = stu;
            return true;
        }
    }

    //返回数组容器值
    public Student[] findAllStudent() {
        return student;
    }
//删除学生
    public void deletStudet(String delId) {
        int index = getIndex(delId);
        student[index]=null;
    }

//修改学生
    public void updateStudent(String updateId, Student s) {
        //1.获取指定索引对应的位置.
        int index = getIndex(updateId);
        //2.根据索引位置修改对象值
        student[index] = s;
    }
    //获取指定学号在索引中的位置
    public int getIndex(String id){
        int index = -1;
        for (int i = 0; i < student.length; i++) {
            Student stu = student[i];
            if(stu!=null&&stu.getSid().equals(id)){
                index = i;
                break;
            }
        }
        return index;
    }
}
